#ifndef ELFE_H
#define ELFE_H

#include "Race.h"
#include "debugstreams.h"

using namespace std;

/**
 * Cette classe implémente les Elfes de l'univers AD&D.
 * @author Johan "Solo" Luisier
 */
class Elfe : public Race
{
 private:
  static const unsigned int
    ens, /**< Nombre d'ensemble raciaux */
    nbr_comp; /**< Nombre max de capacités des différents ensembles raciaux */
  /**
   * Ensemble raciaux disponibles. Contient les capacités inclues
   * dans l'ensemble racial
   */
  static const vector< vector< unsigned int > > ensemble_racial;
  /**
   * Nombre de capacités raciales et d'ensembles raciaux
   */
  static const unsigned int taille;
  /**
   * Liste des capacités raciales et ensembles raciaux
   * @see ListCapa
   */
  static const vector< ListCapa > Liste;
  static const vector< ListEnsCapa > Ensembles;
  /**
   * Contient les prérequis raciaux;
   */
  static const vector< Prerequis > Limites;
  /**
   * Contient les ajustements raciaux pour un Elfe.
   */
  static const map< unsigned int, int > AjustTraits;
 public:
  Elfe(vector<unsigned int> cap);
  Elfe(unsigned int& PP);
  Elfe();
  Elfe(Race *ptr);
  ~Elfe();
};


#endif
